<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <input type="text" name="" id="ipt" />
    <script>
      const oIpt = document.getElementById("ipt");

      // 防抖:让事件函数在我们规定的时间内在进行调用
      function center(e) {
        console.log(1);
      }

      //绑定事件
      oIpt.onkeyup = debounce(center, 2000);

      //封装事件函数
      function debounce(center, time) {
        //设置一个定时器
        let timer = null;
        return function (e) {
          //每次进来的时候清除上次的定时器
          clearTimeout(timer);
          timer = setTimeout(() => {
            //调用核心函数 修改this指向为事件源 传递参数e
            center.call(this, e);
          }, time);
        };
      }
    </script>
  </body>
</html>
